package com.yami.shop.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yami.shop.bean.dto.StationDto;
import com.yami.shop.bean.dto.FinanceDetailsDto;
import com.yami.shop.bean.dto.RevenueOverviewDto;
import com.yami.shop.bean.model.OrderItem;
import com.yami.shop.bean.param.FinanceDetailsParam;
import com.yami.shop.common.util.PageParam;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 财务管理—营收概况
 *
 * @author SJL
 * @date 2020-08-17
 */
public interface RevenueOverviewMapper extends BaseMapper<OrderItem> {


    /**
     * 获取指定商家id和日期的收入金额和退款金额
     * @param stationId 自提id
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 指定商家id和日期的收入金额和退款金额
     */
    RevenueOverviewDto getData(@Param("stationId") Integer stationId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);


    /**
     * 条件参数，分页获取财务明细
     * @param page 分页参数
     * @param param 条件查询参数
     * @return 财务明细
     */
    IPage<FinanceDetailsDto> getPageDetail(PageParam<FinanceDetailsDto> page, @Param("financeDetailsParam") FinanceDetailsParam param);

    /**
     * 条件参数查询，获取财务明细列表
     * @param param 条件查询参数
     * @return 财务明细列表
     */
    List<FinanceDetailsDto> getFinanDetailForm(@Param("financeDetailsParam") FinanceDetailsParam param);

    /**
     * 获取自提门店列表
     * @param shopId  店铺id
     * @return 自提门店列表
     */
    List<StationDto> getStationList(@Param("shopId") Integer shopId);
}
